// 属性相关的接口
import request from "@/utils/request";
import type { CategoryResponseData, AttrResponseData, Attr } from "./type";

// 枚举管理模块接口
enum API {
  C1_URL = "/admin/product/getCategory1", //一级分类
  C2_URL = "/admin/product/getCategory2/", //二级分类
  C3_URL = "/admin/product/getCategory3/", //三级分类
  ATTR_URL = "/admin/product/attrInfoList/", //获取分类下已有的属性与属性值
  ADDORUPDATEATTR = "/admin/product/saveAttrInfo", // 添加或者修改已有的属性
  DELETEATTR_URL = "/admin/product/deleteAttr/", //删除某一个已有的属性
}

// 获取一级分类接口
export const reqC1 = () => request.get<any, CategoryResponseData>(API.C1_URL);

// 获取二级分类接口
export const reqC2 = (category1Id: number | string) =>
  request.get<any, CategoryResponseData>(API.C2_URL + category1Id);

// 获取三级分类接口
export const reqC3 = (category2Id: number | string) =>
  request.get<any, CategoryResponseData>(API.C3_URL + category2Id);

// 获取分类下已有的属性与属性值接口
export const reqAttr = (
  category1Id: string | number,
  category2Id: string | number,
  category3Id: string | number
) =>
  request.get<any, AttrResponseData>(
    API.ATTR_URL + `${category1Id}/${category2Id}/${category3Id}`
  );

// 新增或者修改已有的属性接口
export const reqAddOrUpdateAttr = (data: Attr) =>
  request.post<any, any>(API.ADDORUPDATEATTR, data);

// 删除某一个已有的属性
export const reqRemoveAttr = (attrId: number) =>
  request.delete<any, any>(API.DELETEATTR_URL + attrId);
